package com.lyf.scm.admin.domain.service;


import com.lyf.scm.admin.api.dto.*;
import com.lyf.scm.common.model.ExcelExportDTO;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

/**
 * description:
 * 直营预测计划
 *
 * @author: haodong
 * @data: 2020/8/3 10:26
 */
public interface SalesPlanDirectlyService {

    /**
     * 按条件查询直营预测计划
     *
     * @param salesPlanDirectly
     * @return
     */
    PlanResponseDTO<SalesPlanDirectlyReturnDTO> listBySelective(SalesPlanDirectlyDTO salesPlanDirectly);

    /**
     * 查询全部直营预测计划
     *
     * @param salesPlanDirectly
     * @return
     */
    PlanResponseDTO<SalesPlanDirectlyReturnDTO> listAllByCycles(SalesPlanDirectlyDTO salesPlanDirectly);

    /**
     * 更新确认量
     *
     * @param directly
     * @param unitType
     * @param permissionLevel
     * @return
     */
    void updateConfirm(List<SalesPlanDirectlyDTO> directly, Long unitType, OperationLogRecordDTO logRecord, Integer permissionLevel);

    /**
     * 导出Excel
     *
     * @param excelExportDTO
     * @param weekDates
     * @param rowIndex
     * @param permissionLevel
     * @param type
     * @param operationLog
     * @return
     */
    void exportExcel(EsAggregationDTO excelExportDTO, List<Map<String, String>> weekDates, List<Integer> rowIndex, Integer permissionLevel, Integer type, OperationLogRecordDTO operationLog);

    Boolean export(ExcelExportDTO excelExportDTO, Integer type);

    Boolean importVerification(MultipartFile file, Long unitType);

    Boolean update(List<SalesPlanDirectlyDTO> directly, Long unitType);
}
